package 字符串;

/**
 * @Author Weton Li
 * @Date 2021/3/31 20:23
 */
public class 外观数列 {

    public static String countAndSay(int n) {

        if (n == 1){
            return "1";
        }

        String s = countAndSay(n - 1);

        StringBuilder res = new StringBuilder();

        int start = 0;

        for (int i = 1; i < s.length(); i++) { // 将第二个数与第一个数比较
            // 如果下一个数与当前数不相等 则挨个描述
            if (s.charAt(i) != s.charAt(start)) {
                res.append(i-start).append(s.charAt(start));
                start = i; // i向后继续循环遍历，而start需赋值为当前i值
            }
        }

        // 相同连续数字合并说
        res.append(s.length()-start).append(s.charAt(start));
        return res.toString();
    }

    public static void main(String[] args) {
        System.out.println(countAndSay(5)); // 1/11/21/1211
    }
}
